package org.aspire.math.geom.event;

/******************************************************************************
 * Provides an interface that allows an object to be alerted when its dimension
 * data has been changed. The alert contains information on what data (width or
 * height) has been changed and how much has changed.
 * 
 * @author JPACarabuena
 *****************************************************************************/
public interface DimensionListener {

	// ========================================================================
	// Final Fields
	// ========================================================================
	
	// ========================================================================
	// Getters & Setters
	// ========================================================================
	
	// ========================================================================
	// Override Methods
	// ========================================================================
	
	// ========================================================================
	// Methods
	// ========================================================================
	
	/**************************************************************************
	 * The dimension data has increased in value.
	 * 
	 * @param event	the event generated by the increase in dimension.
	 *************************************************************************/
	public void dimensionIncreased(DimensionEvent event);
	
	/**************************************************************************
	 * The dimension data has decreased in value.
	 * 
	 * @param event the event generated by the decrease in dimension.
	 *************************************************************************/
	public void dimensionDecreased(DimensionEvent event);
	
	/**************************************************************************
	 * The dimension data has both increased and decreased in value. Either the
	 * width has increased and the height decreased or vice-versa.
	 * 
	 * @param event	the event generated by the change in dimension.
	 *************************************************************************/
	public void dimensionChanged(DimensionEvent event);
	
	// ========================================================================
	// Inner & Anonymous Classes
	// ========================================================================
}